package com.zimin.cloud.system.biz;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zimin.cloud.mine.pojo.system.business.RoleBO;
import com.zimin.cloud.mine.pojo.system.view.RoleVO;
import com.zimin.cloud.system.pojo.entity.Role;
import com.zimin.cloud.system.service.IRoleService;
import com.zimin.shared.pojo.PageVO;
import com.zimin.shared.pojo.Result;

import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * 角色信息 业务对象
 * </p>
 *
 * @author zimin
 * @since 2021-12-30 11:05
 */
public interface IRoleBiz extends IRoleService {


    /**
     * <p>分页查询角色列表</p>
     *
     * @param rolePage 角色分页对象
     * @param roleBO   角色业务对象
     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.zimin.cloud.mine.pojo.system.view.RoleVO>
     * @since 2022-02-19 17:13:49
     */
    PageVO<RoleVO> pageRoleList(Page<Role> rolePage, RoleBO roleBO);


    /**
     * <p>根据ID获取RoleVO</p>
     *
     * @param id 角色ID
     * @return com.zimin.cloud.mine.pojo.system.view.RoleVO
     * @author zimin
     * @since 2022-03-12 17:05:48
     */
    RoleVO getRoleVoById(String id);

    /**
     * <p>保存角色</p>
     *
     * @param roleBO 角色业务对象
     * @return boolean
     * @since 2022-02-19 17:14:24
     */
    boolean save(RoleBO roleBO);

    /**
     * <p>更新角色</p>
     *
     * @param roleBO 角色更新对象
     * @return boolean
     * @since 2022-02-19 17:14:52
     */
    boolean updateById(RoleBO roleBO);

    /**
     * <p>查询所有的角色</p>
     *
     * @param
     * @return java.util.List<com.zimin.cloud.mine.pojo.system.view.RoleVO>
     * @author zimin
     * @since 2022-03-15 11:33:31
     */
    List<RoleVO> allRole();

    /**
     * 批量删除角色
     */
    boolean removeByIds(List<String> idList);
}
